<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Dev-C++用户手册 </title>
<style type="text/css">
<!--
.STYLE1 {color: #000033}
.STYLE2 {
	color: #990000;
	font-weight: bold;
}
.STYLE5 {color: #000000; }
body,td,th {
	font-size: medium;
}
.STYLE6 {color: #990000}
.STYLE7 {
	color: #FF00FF;
	font-weight: bold;
}
.STYLE8 {color: #FF00FF}
.STYLE9 {color: #FF0000}
-->
</style>
</head>

<body>
<table width="1100" border="0" align="center">
  <tr>
    <td><h1 align="center" class="STYLE2"><strong><a href="../manual.html">小龙 Dev-C++ 用户手册</a></strong></h1>
      <h2 class="STYLE1"><strong>EasyX 图形函数库简介</strong> </h2>
      <p><strong>EasyX Graphics Library</strong> (<a href="https://easyx.cn/">https://easyx.cn/</a>）也是一个在 Windows 下使用的免费绘图库，最初只支持 Visual C++ 编译器，可以在 Visual C++ 6.0 和 Visual Studiio 各个版本中使用。现在也支持 GCC 编译器（包括 MinGW-W64 和 TDM-GCC），可以在 Dev-C++ 、Code::Blocks 等集成开发环境中使用。 </p>
      <p>在其它集成开发环境中可能需要按照 EasyX 网站上的说明进行安装和配置，但是 <strong>小龙 Dev-C++ 5.16 已经根据 <a href="https://codebus.cn/bestans/easyx-for-mingw">EasyX 作者的安装说明</a>，把 EasyX 集成在本软件中。</strong>在安装了 小龙Dev-C++ 之后就可以在程序中使用 EasyX ，不需要用户额外安装和配置。</p>
      <p> 在小龙 Dev-C++ 5.16 中，用户用编写<strong>单文件程序</strong>或以<strong>项目</strong>形式进行多文件开发时都可以使用 <strong>EasyX</strong> 图形函数库。具体方法如下。</p>
      <h2 class="STYLE1"><strong>一、在单文件程序开发中使用 EasyX 图形函数库</strong></h2>
      <p><strong>（A）</strong>编写<strong>单文件</strong>程序时（普通编程者都用这种方法），请把光标移到源代码头部空白处，然后点击工具栏上的“插入代码块”，
      在弹出的列表中选择点击“EasyX header”这一项，于是在光标所在处就插入了如下预处理命令行：</p>
      <p>        <span class="STYLE7">#include &lt;easyxgraphics.h&gt;  //&lt;graphics.h&gt;</span></p>
      <p>        <span class="STYLE7">#pragma comment(lib, "libEasyX libgdi32 libole32")</span></p>
      <p>这就是在单文件程序中使用 EasyX 所需的预处理命令行。请注意的是，其中用 #include 命令所包含头文件名与 EasyX 官方帮助文档中所说的头文件名 graphics.h 
          有所不同。这是小龙 Dev-C++ 中为了避免与其它库文件的头文件名混淆而故意把 graphics.h 改名<span class="STYLE8"><strong> easyx</strong></span>graphics.h，
          所以在源程序中需要使用这个改名后的头文件名。 </p>
      <p>上面插入的第二行预处理命令是用 #pragma comment 命令添加 "libEasyX libgdi32 libole32" 这几个函数库以供连接时使用，这也是在单文件源程序中使用 EasyX 所需的。
          （EasyX 官方帮助文档中并没有直接说到要求这样做，但是在小龙Dev-C++ 中确实需要这行预处理命令。）</p>
      <p>在以上两行预处理命令下方就可以编写自己的程序了。例如下面是一个简单的 main 函数（可供用户测试）：</p>
        <p>        <span class="STYLE7">int main() {</span></p>
        <p>        <span class="STYLE7">int width = 900, height = 600;</span></p>
	    <p>        <span class="STYLE7">initgraph(width, height); //Init EasyX graphic window </span></p>
	    <p>        <span class="STYLE7">circle(width / 2, height / 2, 200); </span></p>
	    <p>        <span class="STYLE7">getch(); </span></p>
	    <p>        <span class="STYLE7">closegraph(); </span></p>
	    <p>        <span class="STYLE7">return 0; </span></p>
        <p>        <span class="STYLE7">} </span></p>
      <p>&nbsp;</p>
      <p>在 小龙 Dev-C++ 安装目录下的<strong> Example</strong> 文件夹中，包含了如下使用 EasyX 的单文件示例程序，可供用户参考： </p>
      <p><strong>easyx-circles.cpp</strong>：绘制一系列同心圆</p>
      <p><strong>easyx-clock.cpp</strong>：绘制一个实时走动的钟表盘</p>
      <p><strong>easyx-star.cpp</strong>：绘制一个五角星</p>
      <p>&nbsp;</p>
      <p><strong>常见问题 1</strong>：在一些网站上（例如 <a href="https://blog.csdn.net/Nico_Anzio/article/details/116500224" target="_blank">EasyX 入门笔记</a>）或 <a href="https://docs.easyx.cn/zh-cn/intro">EasyX 文档</a> ）或其它参考资料上看到一些使用 EasyX 进行绘图的源程序，复制粘贴到 小龙Dev-C++ 并保存为源程序文件，编译时就报错“<span class="STYLE9">[错误] graphics.h: 没有这个文件或目录</span>”，怎么解决？</p>
      <p><strong>解答</strong>：要想在程序中使用 EasyX 进行绘图，在其它集成开发环境中是要求事先额外安装 EasyX 并进行配置，而在 小龙Dev-C++ 中是已经集成了 EasyX ，不需要额外安装和配置，但是在程序中必须要写上文所述的预处理命令行（其中要注意 EasyX 的头文件名改成了 <span class="STYLE7">easyx</span>graphics.h ）。所以，先删除原有的预处理命令行</p>
      <p>#include &lt;graphics.h&gt; </p>
      <p>然后再按上面所述，点击工具栏上的“插入代码块”，
        选择点击“EasyX header”，以插入所需的预处理命令行，然后就可以编译运行了。</p>
      <p><strong>常见问题 2 </strong>：在 EasyX 官方文档中说到，在 Dev-C++ 中配置 EasyX 时，需要手工给连接命令中添加连接参数“-lEasyX -lgdi32 -lole32”。在 小龙Dev-C++ 中还需要这样设置吗？</p>
      <p><strong>解答</strong>：这里有两种处理策略（根据需要任选其一即可）。策略一：如果你只是编写少量几个使用 EasyX 的程序，那么最好是在每个程序中按照前述说明插入了预处理命令行，就不需要手工添加连接参数了；策略二：如果你需要编写很多使用 EasyX 的程序，那么可以手工给连接命令中添加这些连接参数，并在程序中用 #include 命令包含 &lt;easyxgraphics.h&gt; 。</p>

      <p>&nbsp;</p>
      <h2 class="STYLE1"><strong>二、建立项目进行多文件程序开发时使用 EasyX</strong></h2>
      <p class="STYLE1">在小龙 Dev-C++ 中建立<strong>项目</strong>进行多文件程序开发时（只有开发大型程序才这样做），请点击菜单“项目”下的“新建项目”，在所弹出的对话框中，在“多媒体”类别下面有“EasyX”项目模板（其主程序的内容与 <span class="STYLE5">easyx-circles.cpp</span> 相同）。双击即可创建一个使用 EasyX 的项目。</p>
      <p>在项目中实际上有三处针对 EasyX 进行了设置（模板中已经设置好了，不需要用户自己处理）：</p>
      <p>(1) 在项目的主程序中写了如下预处理命令行：</p>
      <p class="STYLE8">#include  &lt;easyxgraphics.h&gt;</p>
      <p>(2) 在“项目属性”的“基本”页中，“类型”被设定为“Win32 图形界面程序”；</p>
      <p>(3) 在“项目属性”的“参数”页中，在“连接器”中已经添加了如下参数：</p>
      <p> <span class="STYLE7">-lEasyX -lgdi32 -lole32</span></p>
      <p>&nbsp;</p>
      <p>&nbsp;</p>
    </td>
  </tr>
  <tr>
    <td><div align="center">
      <hr />
      <p>文档编写者联系邮箱：anbangli@foxmail.com</p>
      </div></td>
  </tr>
</table>
<p>&nbsp;	</p>
</body>
</html>
